↳ ITRS
↳ ITRStoIDPProof
z
div(x, y) → Cond_div1(>=@z(y, x), x, y)
Cond_div1(TRUE, x, y) → 0@z
div(x, y) → Cond_div(&&(>@z(x, y), >@z(y, 0@z)), x, y)
Cond_div2(TRUE, x, y) → 0@z
div(x, y) → Cond_div2(>=@z(0@z, y), x, y)
Cond_div(TRUE, x, y) → +@z(div(-@z(x, y), y), 1@z)
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
z
div(x, y) → Cond_div1(>=@z(y, x), x, y)
Cond_div1(TRUE, x, y) → 0@z
div(x, y) → Cond_div(&&(>@z(x, y), >@z(y, 0@z)), x, y)
Cond_div2(TRUE, x, y) → 0@z
div(x, y) → Cond_div2(>=@z(0@z, y), x, y)
Cond_div(TRUE, x, y) → +@z(div(-@z(x, y), y), 1@z)
(0) -> (2), if ((x[0] →* x[2])∧(y[0] →* y[2])∧(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)) →* TRUE))
(2) -> (0), if ((y[2] →* y[0])∧(-@z(x[2], y[2]) →* x[0]))
(2) -> (1), if ((y[2] →* y[1])∧(-@z(x[2], y[2]) →* x[1]))
(2) -> (3), if ((y[2] →* y[3])∧(-@z(x[2], y[2]) →* x[3]))
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
z
(0) -> (2), if ((x[0] →* x[2])∧(y[0] →* y[2])∧(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)) →* TRUE))
(2) -> (0), if ((y[2] →* y[0])∧(-@z(x[2], y[2]) →* x[0]))
(2) -> (1), if ((y[2] →* y[1])∧(-@z(x[2], y[2]) →* x[1]))
(2) -> (3), if ((y[2] →* y[3])∧(-@z(x[2], y[2]) →* x[3]))
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
z
(2) -> (0), if ((y[2] →* y[0])∧(-@z(x[2], y[2]) →* x[0]))
(0) -> (2), if ((x[0] →* x[2])∧(y[0] →* y[2])∧(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)) →* TRUE))
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)
(1) (x[0]=x[2]∧y[0]=y[2]∧y[2]=y[0]1∧&&(>@z(x[0], y[0]), >@z(y[0], 0@z))=TRUE∧-@z(x[2], y[2])=x[0]1 ⇒ COND_DIV(TRUE, x[2], y[2])≥NonInfC∧COND_DIV(TRUE, x[2], y[2])≥DIV(-@z(x[2], y[2]), y[2])∧(UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥))
(2) (>@z(x[0], y[0])=TRUE∧>@z(y[0], 0@z)=TRUE ⇒ COND_DIV(TRUE, x[0], y[0])≥NonInfC∧COND_DIV(TRUE, x[0], y[0])≥DIV(-@z(x[0], y[0]), y[0])∧(UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥))
(3) (x[0] + -1 + (-1)y[0] ≥ 0∧-1 + y[0] ≥ 0 ⇒ (UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥)∧-1 + (-1)Bound + y[0] + (2)x[0] ≥ 0∧-2 + (2)y[0] ≥ 0)
(4) (x[0] + -1 + (-1)y[0] ≥ 0∧-1 + y[0] ≥ 0 ⇒ (UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥)∧-1 + (-1)Bound + y[0] + (2)x[0] ≥ 0∧-2 + (2)y[0] ≥ 0)
(5) (-1 + y[0] ≥ 0∧x[0] + -1 + (-1)y[0] ≥ 0 ⇒ (UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥)∧-2 + (2)y[0] ≥ 0∧-1 + (-1)Bound + y[0] + (2)x[0] ≥ 0)
(6) (y[0] ≥ 0∧x[0] + -2 + (-1)y[0] ≥ 0 ⇒ (UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥)∧(2)y[0] ≥ 0∧(-1)Bound + y[0] + (2)x[0] ≥ 0)
(7) (y[0] ≥ 0∧x[0] ≥ 0 ⇒ (UIncreasing(DIV(-@z(x[2], y[2]), y[2])), ≥)∧(2)y[0] ≥ 0∧4 + (-1)Bound + (3)y[0] + (2)x[0] ≥ 0)
(8) (DIV(x[0], y[0])≥NonInfC∧DIV(x[0], y[0])≥COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])∧(UIncreasing(COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])), ≥))
(9) ((UIncreasing(COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 ≥ 0)
(10) ((UIncreasing(COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 ≥ 0)
(11) (0 ≥ 0∧(UIncreasing(COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])), ≥)∧0 ≥ 0)
(12) (0 ≥ 0∧0 = 0∧(UIncreasing(COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])), ≥)∧0 ≥ 0∧0 = 0∧0 = 0∧0 = 0)
POL(-@z(x1, x2)) = x1 + (-1)x2
POL(0@z) = 0
POL(COND_DIV(x1, x2, x3)) = -1 + x3 + (2)x2
POL(TRUE) = -1
POL(&&(x1, x2)) = 2
POL(DIV(x1, x2)) = x2 + (2)x1
POL(FALSE) = 2
POL(undefined) = -1
POL(>@z(x1, x2)) = -1
COND_DIV(TRUE, x[2], y[2]) → DIV(-@z(x[2], y[2]), y[2])
DIV(x[0], y[0]) → COND_DIV(&&(>@z(x[0], y[0]), >@z(y[0], 0@z)), x[0], y[0])
COND_DIV(TRUE, x[2], y[2]) → DIV(-@z(x[2], y[2]), y[2])
&&(FALSE, FALSE)1 ↔ FALSE1
-@z1 ↔
&&(TRUE, FALSE)1 → FALSE1
&&(FALSE, TRUE)1 ↔ FALSE1
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDependencyGraphProof
↳ IDP
z
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)
↳ ITRS
↳ ITRStoIDPProof
↳ IDP
↳ UsableRulesProof
↳ IDP
↳ IDependencyGraphProof
↳ IDP
↳ IDPNonInfProof
↳ AND
↳ IDP
↳ IDP
↳ IDependencyGraphProof
div(x0, x1)
Cond_div1(TRUE, x0, x1)
Cond_div2(TRUE, x0, x1)
Cond_div(TRUE, x0, x1)